<?php

class DetalleVentas extends BaseDetalleVentas {

    public function getPrecioVenta() {

            $venta = $this->getVentas();

            $iva = $venta->getVtaIva() / 100;

            $precio = $this->getDetVtaPrecio();
            $ganancia = $this->getDetVtaGanancia() / 100;

            $precioConIva = $precio + ($precio * $iva);
            $precioTotal = $precioConIva + ($precioConIva * $ganancia);

            return round($precioTotal, 2);
    
        return false;
    }

    public function almacenarDetalleVenta($articulo, $cant, $precio, $talle, $ganancia, $idVenta) {
        $this->setDetVtaArticulo($articulo);
        $this->setDetVtaCantidad($cant);
        $this->setDetVtaPrecio($precio);
        $this->setDetVtaTalle($talle);
        $this->setDetVtaGanancia($ganancia);
        $this->setDetVtaVta($idVenta);
        $this->save();
    }

    public function getCantidadDevuelta() {

        try {
            $cantidad_vendida = $this->getDetVtaCantidad();
            $articulo = $this->getDetVtaArticulo();
            $talle = $this->getDetVtaTalle();
$cantidad_devuelta = 0;
            //obtener devoluciones del producto
            $devoluciones = $this->getVentas()->getDevolucioness();
            if (!empty($devoluciones)) {

                //Por cada devolucion restar el valor de la devolucion
                foreach ($devoluciones as $devolucion) {
                    $criteria = new Criteria();
                    $criteria->add(DetalleDevolucionesPeer::DET_VTA_ARTICULO, $articulo);
                    $criteria->add(DetalleDevolucionesPeer::DET_VTA_TALLE, $talle);
                    $detalle_devolucion = $devolucion->getDetalleDevolucioness($criteria);

                    if (!empty($detalle_devolucion)) {
                        if (!empty($detalle_devolucion[0])) {
                            $cantidad_devolucion = $detalle_devolucion[0]->getDetVtaCantidad();
                            $cantidad_devuelta = $cantidad_vendida - $cantidad_devolucion;
                        }
                    }
                }
            }

            return $cantidad_devuelta;
        } catch (sfException $e) {
            return null;
        }
    }

}
